<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/proyecto/clases/autoload.inc.php';
if(Zen::IniciarSesion()){
 $debug=false;
 
 $db = Zen::Db(0);
 
 $tabla = 'cuadraturas_caja';
 $record = array();

 $fecha = date('Y-m-d');
 $hora = date('H:i');
 $usuario = $_POST['usu_rut'];
 $fecha_apertura = $_POST['fecha_apertura'];
 $fecha_cierre = $_POST['fecha_cierre'];
 

 
 //DATOS DE LA CUADRATURA DE CAJA
 $record["cuca_fecha_cierre"] = $fecha;
 $record["cuca_hora_cierre"] = $hora;
 $record["cuca_estado"] = 't';
 
 //INICIAR LA TRANSACCION DE DATOS SEGURA
 $db->StartTrans(); 

 //SE ACTUALIZA LA CUADRATURA AGREGANDO CAMPOS DEL CIERRE
 $db->AutoExecute($tabla, $record, 'UPDATE', "usu_rut='$usuario' and cuca_fecha_apertura='$fecha_apertura'") ;
 //$insertSQL = Zen::AutoSql($debug, $tabla, $record, 'UPDATE', "usu_rut='$usuario' and cuca_fecha_apertura='$fecha_apertura'", false, true ) ;
    
 //OBTIENE EL TOTAL POR CADA FORMA DE PAGO   
 $sql="select fp_nombre, sum(pag_valor_pagado) as total from pagos where usu_rut='$usuario' and pag_fecha_pago >= '$fecha_apertura' and pag_fecha_pago <= '$fecha_cierre'   group by fp_nombre order by fp_nombre";
 $rs = Zen::Consulta($sql,$debug);

 //SE INSERTA EL RESUMEN PAGO SEGUN LOS TOTALES OBTENIDOS E INGRESADOS EN EL SISTEMA   
 $tabla_res = 'resumen_pagos';
 $record_res = array();
 $cont = 0;
 
 $NumRegistros=Zen::NumeroRegistros($rs);
  
 if($rs!=null || $NumRegistros==0){
     foreach($rs as $k => $record_sql)
     {
        $campo_valor = 'p'.$cont;
        $forma_pago = $record_sql['fp_nombre'];
        
        $record_res["usu_rut"] = $usuario;
        $record_res["cuca_fecha_apertura"] = $fecha_apertura;
        $record_res["fp_nombre"] = $forma_pago;
        $record_res["rep_monto_recaudado_sistema"] = $record_sql['total'];
        $record_res["rep_monto_recaudado_usuario"] = $_POST[$campo_valor];
        
        //$insertSQL = Zen::AutoSql($debug, $tabla_res, $record_res, 'INSERT' ) ;
        $db->AutoExecute($tabla_res, $record_res, 'INSERT');
        
        //OBTIENE LA ID QUE SE GENERO DEL RESUMEN
        //$rep_id = $db->GenId("resumen_pagos_rep_id_seq") - 1;
        
         //OBTIENE LOS REGISTROS QUE SE LE ACTUALIZARA LAS FK DE RESUMEN
        $sql_2="select * from pagos where usu_rut='$usuario' and pag_fecha_pago >= '$fecha_apertura' and pag_fecha_pago <= '$fecha_cierre' and fp_nombre = '$forma_pago'  ";
        $rs_2 = Zen::Consulta($sql_2,$debug);
        $NumRegistros_2=Zen::NumeroRegistros($rs_2);
     
               
        //if($rs_2!=null || $NumRegistros_2==0){
            foreach($rs_2 as $k_2 => $record_sql_2)
            {
                //SE ACTUALIZA LOS PAGOS CON LAS PK DE RESUMEN DE PAGO
                $tabla_pag = 'pagos';
                $record_pag = array();
                                
                $pag_id = $record_sql_2['pag_id'];
                //echo 'pag_id:'.$pag_id.';';
               
               
                //FK A ACTUALIZAR
                $record_pag['res_usu_rut'] = $usuario;
                $record_pag['cuca_fecha_apertura'] = $fecha_apertura;
                $record_pag['res_fp_nombre'] = $forma_pago;
                //$record_pag['rep_id'] = $rep_id;
                
               // $insertSQL = Zen::AutoSql($debug, $tabla_pag, $record_pag, 'UPDATE', "pag_id=$pag_id", false, true ) ;
                $db->AutoExecute($tabla_pag, $record_pag, 'UPDATE', "pag_id=$pag_id") ;
        
            }   
        //}
        
        
        
        
        $cont=$cont+1;
        
      }                       
 } 



 //  FIN DATOS EXAMENES
 $acusete = $db->HasFailedTrans();
 if($acusete) //si hay errores sql deshacer todos los cambios!
 {
    $db->FailTrans();//rollback!
 }
 $db->CompleteTrans(); //TERMINAR LA TRANSACCION DE DATOS SEGURA


 $json = new Services_JSON() ;

 //if ( $insertSQL && Zen::FilasAfectadas() === 1 )
 if (!$acusete)
 {
 	$datos = array( 'error' => 'ok' ) ;
 	$datos['filas'] = 'Numero de filas afectadas: ' . Zen::FilasAfectadas() ;
 	$salida = $json->encode( $datos ) ;
 	echo $salida ;
 }
 else
 {
 	$e = ADODB_Pear_Error() ;
    $datos['filas'] = Zen::FilasAfectadas() ;
 	$datos["detalles"] = $e->message;
    $datos["error"] = 'mal' ;
 	$salida = $json->encode( $datos ) ;
    echo $salida ;
 }
 }
else
{
 Zen::LogoutModulo();
}
 

?>